package Busqueda;
/**
 * @author Reynald0
 */
public class Binaria
{
   private int contador;
   private int primero;
   private int medio;
   private int ultimo;
   private int numero;
   private int indice;
   
   public Binaria()
   {
      contador=0;
      primero=0;
      medio=0;
      ultimo=0;
      indice = -1;
   }
   
   public int buscar(int[] pArreglo,int pNumero)
   {
      primero=0;
      ultimo=pArreglo.length-1;
      numero=pNumero;
      if(pNumero<pArreglo[primero]||pNumero>pArreglo[ultimo])
         return -1;
      while(primero<=ultimo)
      {
         contador++;
         medio=(primero+ultimo)/2;
         if(pNumero==pArreglo[medio])
         {
            indice=medio;
            return medio;
         }
         else if(pNumero<pArreglo[medio]) ultimo=medio-1;
         else primero=medio+1;
      }
      return -1;
   }
   
   public String toString()
   {
      String cadena = String.format("Elemento ingresado: %d\n", numero);
      
      if (indice > -1)
         cadena += String.format("Indice del elemento: %d\n",indice);
      else if (indice == -1)
         cadena += "No se encontro el elemento\n";
      
         cadena += String.format("No. Comparaciones: %d\n",contador);
      return cadena;
   }
}
